           package com.java.diagnostics.visualizer.impl.sources.implementations;
           
           import com.java.diagnostics.visualizer.exceptions.GCAndMemoryVisualizerException;
           import java.io.File;
           import java.io.FileInputStream;
           import java.io.IOException;
           import java.io.InputStream;
           import java.io.SequenceInputStream;
           import java.util.Enumeration;
           import java.util.Vector;
           import java.util.zip.ZipEntry;
           import java.util.zip.ZipFile;
           import java.util.zip.ZipInputStream;
           
           public class ZipFileSourceImpl extends FileSourceImpl
           {
             public ZipFileSourceImpl(File file)
             {
               super(file);
             }
           
             public InputStream getRawStream() throws GCAndMemoryVisualizerException {
               this.lastModified = this.file.lastModified();
               FileInputStream fis = null;
               ZipInputStream zis = null;
               try {
                 Vector fileList = new Vector();
                 ZipFile zip = new ZipFile(this.file);
                 fis = new FileInputStream(this.file);
                 zis = new ZipInputStream(fis);
                 ZipEntry entry = zis.getNextEntry();
                 while (entry != null) {
                   fileList.add(zip.getInputStream(entry));
                   entry = zis.getNextEntry();
                 }
                 Enumeration e = fileList.elements();
                 return new SequenceInputStream(e);
               } catch (IOException fe) {
                 throw new GCAndMemoryVisualizerException(fe);
               } finally {
                 if (zis != null)
                   try {
                     zis.close();
                   }
                   catch (IOException localIOException3) {
                   }
                 if (fis != null)
                   try {
                     fis.close();
                   }
                   catch (IOException localIOException4)
                   {
                   }
               }
             }
           }

